Awesome Visual Regression Testing
      
    
    
      Curated list of awesome visual regression testing resources.
    
    
      Regression testing is a type of software testing which verifies that
      software which was previously developed and tested still performs the same
      way after it was changed or interfaced with other software. The purpose of
      regression testing is to ensure that changes to the software have not
      introduced new faults.
    
    Foreword
    
      This is intended to be an incomplete list of resources about
      visual regression testing. It is not tailored to a specific area or role
      (Developer/QA/UX-Designer). Note that this is for all areas of regression
      software testing after the code in question is written. For a
      awesome list on general software testing see e.g. awesome-testing.
    
    
      Finally, I’m sure everyone who reads this list has one thing they want to
      add. Please read the
      How to Contribute page and
      Feel free to add to the list!!. If you think this is
      helpful Please give a Star ★.
    
    Contents
    
    
    
    Browser automation
    
      - 
        Selenium - Browser
        automation framework and ecosystem.
      
 
      - 
        SlimerJS - Scriptable
        browser like PhantomJS, based on Firefox.
      
 
      - 
        trifleJS - Headless
        automation for Internet Explorer.
      
 
      - 
        CasperJS - Navigation
        scripting and testing utility for PhantomJS and SlimerJS.
      
 
      - 
        Webdriver.io -
        Node.js bindings implementation for the W3C WebDriver protocol.
      
 
      - 
        Navalia - Browser
        Automation based on headless Chrome and GraphQL.
      
 
      - 
        Chromeless -
        Chrome automation made simple. Runs locally or headless on AWS Lambda.
      
 
      - 
        Cypress.io - An automation
        framework that runs in-browser.
      
 
    
    
    
      - 
        OSnap - The speedy
        and easy to use Snapshot Testing tool for your project (1200 snapshots
        will run in under 3 minutes).
      
 
      - 
        basset - Open source platform for
        generating and reviewing visual differences. Supports multiple browsers,
        integrations for github and slack.
      
 
      - 
        AyeSpy - 44 image
        comparisons in 90 seconds.
      
 
      - 
        Wraith - Easy to use
        ruby tool with docker support.
      
 
      - 
        BackstopJS -
        Config-driven automated screenshot test framework.
      
 
      - 
        Galen - Java
        framework based on
        Selenium.
      
 
      - 
        Creevey - Cross-browser
        visual testing with magic. Feature-rich tool with UI Runner, Tests Hot
        Reloading, Docker and Storybook integration.
      
 
      - 
        CSSCritic -
        Lightweight CSS regression testing.
      
 
      - 
        Spectre - Provides
        image comparison capabilities and an admin interface for managing
        screenshots.
      
 
      - 
        Shoov - UI regression and
        functional testing focused on Drupal 7 sites.
      
 
      - 
        qd_screenshottests
        - CasperJS-based UI regression and functional testing focused on Drupal
        8 sites.
      
 
      - 
        Look-alike - Chrome
        Extension for taking and comparing screenshots.
      
 
      - 
        Hardy -
        Selenium-driven, cucumber-powered CSS testing.
      
 
      - 
        TestCafe -
        Automated browser testing for the modern web development stack.
      
 
      - 
        Needle - Needle is
        a tool for testing visuals with Selenium and nose (Python).
      
 
      - 
        gatling -
        Integrated visual RSpec matcher which makes real visual testing easy
        (Ruby).
      
 
      - 
        grunt-photobox
        - Plugin to prevent your project of broken layout via screenshot photo
        sessions of your site.
      
 
      - 
        vrtest - JavaScript
        library for running visual regression tests on your components cross
        browser via selenium.
      
 
      - 
        Happo - Visual diffing
        in CI for user interfaces.
      
 
      - 
        reg-cli - Visual
        regression test tool which output easy-to-read single file html report.
      
 
      - 
        Nightmare -
        High-level browser automation library based on Electron.
      
 
      - 
        Puppeteer -
        Headless Google Chrome Node API.
      
 
      - 
        Playwright - Node
        library to automate Chromium, Firefox and WebKit with a single API.
      
 
      - 
        reg-suit - Visual
        regression testing suite which compares images, stores snapshots, and
        notifies the difference to your GitHub repo.
      
 
      - 
        Chimp - Develop acceptance
        tests & end-to-end tests with realtime feedback.
      
 
      - 
        Differencify -
        A library for visual regression testing using
        Puppeteer.
      
 
      - 
        ResembleJS - Analyse
        and compare images with Javascript and HTML5.
      
 
      - 
        Muppeteer - Visual
        regression testing framework for Chrome using
        Mocha and
        Puppeteer.
      
 
      - 
        ember-visual-test
        - Simple visual regression testing for
        Ember.
      
 
      - 
        AET - Scalable testing
        tool providing visual regression testing, accessibility and performance
        validation, markup analysis and more.
      
 
      - 
        Wendigo -
        Test-oriented browser automation library based on Puppeteer.
      
 
      - 
        Loki - Visual regression
        testing for Storybook using Chrome in docker et al.
      
 
      - 
        Zombie.js - Insanely fast, headless
        full-stack testing using Node.js.
      
 
      - 
        CodeceptJS -
        Modern Era Acceptance Testing Framework for NodeJS.
      
 
      - 
        FuncUnit - A functional
        test suite based on jQuery
      
 
      - 
        Nightwatch -
        Automated testing and continuous integration framework based on Node.js
        and using the Webdriver protocol.
      
 
      - 
        Protractor - E2E
        test framework for Angular apps.
      
 
      - 
        jest-puppeteer-react
        - Visual regression testing with Jest and puppeteer for React components
      
 
      - 
        test-crawler -
        Visual regression testing, by crawling a website and providing snapshot
        comparison reports.
      
 
      - 
        wdio-visual-regression
        - Visual regression tool for webdriver.io
      
 
      - 
        Selenide - Framework
        powered by Selenium WebDriver for writing easy-to-read and
        easy-to-maintain automated tests in Java.
      
 
      - 
        Karma - A
        test runner by the AngularJS team, that fits all our needs.
      
 
    
    Online services
    
      - 
        BrowserStack - Free for Open
        Source. Supports
        Selenium Webdriver.
      
 
      - 
        LambdaTest - Perform Automated
        and Live Interactive Cross Browser Testing on 2000+ Real Browsers and
        Operating Systems Online.
      
 
      - 
        screener.io - For React, looks open
        source.
      
 
      - 
        applitools - Cloud base visual
        tests.
      
 
      - 
        percy.io - Continuous visual reviews for
        web apps.
      
 
      - 
        screenster.io - Cloud based
        automation testing platform for web and mobile UI.
      
 
      - 
        browserling - LIVE interactive
        cross-browser testing.
      
 
      - 
        Browser Shots - Screenshots only.
      
 
      - 
        Ghost Inspector - See
        introduction video.
      
 
      - 
        CrossBrowserTesting -
        Manual & exploratory testing on 1500+ real browsers and mobile
        devices.
      
 
      - 
        Argos-CI - Automate visual
        regression testing.
      
 
      - 
        Diffy - Cloud based visual
        regression tool. Uses puppeteer and proprietary comparison algorithm
        (detect layout shifts). Great scalability with AWS Lambda.
      
 
      - 
        Chromatic - Visual testing and
        UI review for component libraries. Cloud-based.
        Video
      
 
      - 
        VisWiz.io - Flexible visual
        regression testing service.
      
 
      - 
        Happo - Cloud-based screenshot testing
        service with support for multiple browsers.
      
 
      - 
        Visual Knight - Cloud-based
        visual testing platform with realtime results for testing tools.
      
 
      - 
        Axcept - Testing for the whole team. Up
        to 100 tests in parallel. Endpoint Mocking. Code Coverage.
      
 
      - 
        Fluxguard - Screenshot pixel and DOM
        change comparisons and regressions.
      
 
      - 
        Vidiff - Cloud-based visual regression
        testing across stages.
      
 
      - 
        Reflect - Visual regression testing
        and test automation tool.
      
 
      - 
        Visual Regression Tracker
        - Open Source selfhosted service for visual regression testing
      
 
      - 
        Micoo - Open source service
        for all UI application visual regression solution
      
 
    
    Blog posts
    
      - 
        Kevin Lamping: The 5 best visual regression testing tools
        - Compares: Wraith, PhantomCSS, Gemini, WebdriverCSS and Spectre.
      
 
      - 
        Garris Shipon: Visual Regression Testing For Angular Applications
        - Tutorial using BackstopJS.
      
 
      - 
        Angela Riggs: Visual Regression Testing with BackstopJS
        - Tutorial using BackstopJS.
      
 
      - 
        Garris Shipon: Automating CSS Regression Testing
        - Tutorial using BackstopJS.
      
 
      - 
        Phillip Gourley: Making visual regression useful
        - Why you should use BackstopJS.
      
 
      - 
        Pavels Jelisejevs: Visual Regression Testing with PhantomCSS
        - Introduction to PhantomCSS.
      
 
      - 
        Chromeless, Chrominator, Chromy, Navalia, Lambdium, GhostJS,
          AutoGCD
        - Headless Chrome is shaking up traditional approaches to test
        automation.
      
 
      - 
        Visual regression testing using Jest, Chromeless and AWS Lambda
        - Tutorial using Chromeless and jest-image-snapshot.
      
 
      - 
        Make visual regression testing easier
        - Introduction to
        Differencify
        and how to use it.
      
 
      - 
        Visual Regression Testing with Puppeteer & Jest
        - Tutorial to setup visual testing with Puppeteer, Jest and VisWiz.io.
      
 
      - 
        Keeping a React Design System consistent: using visual regression
          testing to save time and headaches
        - Using percy, and jest puppeteer to visually test a React component
        library.
      
 
      - 
        Visual Regression Test with WebdriverIO & WebdriverCSS
        - Tutorial using WebdriverIO and WebdriverCSS with Spec Reporter
      
 
      - 
        Automated screenshot comparison tests with headless Chrome, Puppeteer
          and Pixelmatch, in Bitbucket pipeline
      
 
      - 
        Automatic visual diffing with Puppeteer
      
 
      - 
        theheadless.dev - Blog with
        practical guides and runnable examples on Playwright and Puppeteer.
      
 
      - 
        Visual regression testing for Hugo with Github-CI and BackstopJS
        - How to automate regression testing for Hugo with BackstopJS
      
 
      - 
        UI Visual Regression Testing with Micoo
        - Introduction about how to do visual regression testing with Micoo
        service
      
 
    
    Slideshows, talks and videos
    
    Deprecated
    
      The following projects are no longer maintained actively but are still
      worth mentioning because of their user base.
    
    
      - 
        PhantomJS - Scriptable
        Headless WebKit. No longer maintained since 2 June 2018.
      
 
      - 
        PhantomCSS -
        Visual/CSS regression testing with PhantomJS or SlimerJS. No longer
        maintained since 22 Dec 2017.
      
 
      - 
        PhantomFlow -
        Experimental approach to UI testing, based on Decision Trees.
      
 
      - 
        DalekJS - Automated cross
        browser testing with JavaScript. No longer maintained since 4 Jun 2017.
      
 
      - 
        dpxdt - End-to-end
        testing with Python.
      
 
      - 
        Visual Review - A
        human-friendly tool for testing and reviewing visual regressions.
      
 
      - 
        Huxley - Python
        framework based on
        Selenium Webdriver.
      
 
      - 
        WebdriverCSS -
        WebdriverCSS sits on top of
        Webdriver.io
        and hooks into
        Selenium.
      
 
      - 
        Gemini - Feature
        rich framework with support for
        Selenium and
        CasperJS. Gemini is
        deprecated, use hermione instead.
      
 
      - 
        OcularJS - uses
        PhantomJS.
      
 
    
    Miscellaneous
    Contributing
    
      See the Contribution Guide for
      details on how to contribute.
    
    Code of Conduct
    
      See the Code of Conduct for
      details. Basically it comes down to: > In the interest of fostering an
      open and welcoming environment, we as contributors and maintainers pledge
      to making participation in our project and our community a harassment-free
      experience for everyone, regardless of age, body size, disability,
      ethnicity, gender identity and expression, level of experience,
      nationality, personal appearance, race, religion, or sexual identity and
      orientation.
    
    License
    
      
    
    
      This work is licensed under a
      Creative Commons Attribution-ShareAlike 4.0 International License. License holders are
      all contributors.